home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib12.dsk / RADIOACTIVE DECAY.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  72 lines

  1. 1  REM  ***********************
  2. 2  REM  *  RADIOACTIVE DECAY  *
  3. 3  REM  * BY DICK CORNELIUS   *
  4. 4  REM  * AND MELVIN ZANDER   *
  5. 5  REM  * COPYRIGHT (C) 1983  *
  6. 6  REM  * BY MICROSPARC, INC. *
  7. 7  REM  * LINCOLN, MA. 01773  *
  8. 8  REM  ***********************
  9. 150  REM  INITIALIZATION
  10. 160  HGR : SCALE= 1: ROT= 1:
  11. 170  FOR SPOT = 960 TO 970: READ CODE: POKE SPOT,CODE: NEXT 
  12. 180  DATA  1,0,4,0,45,53,63,55,45,45,0
  13. 190  POKE 233,3: POKE 232,192
  14. 200  HOME 
  15. 210 SPEAKER = 49200
  16. 220 CC = 234
  17. 230 KB =  -16384:KS =  -16368
  18. 240 ESC$ =  CHR$(27)
  19. 250 TXT$ = "SIMULATION OF RADIOACTIVE DECAY SHOWING  SAMPLE PLOT AS A FUNCTION OF TIME   PRESS THE SPACE BAR TO INTERRUPT PLOT."
  20. 260  REM  SET UP SCREEN
  21. 270  HCOLOR= 3
  22. 280  FOR X = 208 TO 262: HPLOT X,2 TO X,64: NEXT 
  23. 290  HCOLOR= 2
  24. 300  FOR X = 215 TO 255: HPLOT X,9 TO X,56: NEXT 
  25. 310  HCOLOR= 0
  26. 320  HPLOT 214,8 TO 256,8 TO 256,56 TO 214,56 TO 214,8
  27. 330  HCOLOR= 2
  28. 340  HPLOT 0,0 TO 0,159
  29. 350  HPLOT 0,0 TO 279,0
  30. 360  HPLOT 0,159 TO 279,159
  31. 370  FOR X = 2 TO 279  STEP 20
  32. 380  FOR Y = 158 TO 0  STEP  -20
  33. 390  HPLOT X,Y: NEXT : NEXT 
  34. 400  VTAB 21: PRINT TXT$;
  35. 410  REM  REACT
  36. 420  POKE KS,0
  37. 430 TIME = TIME +1/4
  38. 440  IF  PEEK(KB) >127  THEN  GOSUB 680
  39. 450 X =  INT( RND(1) *10) *4 +216
  40. 460 Y =  INT( RND(1) *16) *3 +9
  41. 470  IF  RND(1) >0.5  THEN  FOR PAUSE = 1 TO 10: NEXT : GOTO 430
  42. 480  HCOLOR= BLACK: DRAW 1 AT X,Y
  43. 490  IF  PEEK(CC) = 12  THEN  FOR PAUSE = 1 TO 10:SOUND =  PEEK(NULL): NEXT : GOTO 510
  44. 500  FOR I = 1 TO 10:SOUND =  PEEK(SPEAKER): NEXT 
  45. 510  HCOLOR= 3
  46. 520  IF TIME >278  THEN 570
  47. 530  HPLOT OX,OY TO TIME,YY TO TIME +1,YY
  48. 540  IF  PEEK(CC) = 6  THEN YY = YY +1
  49. 550 OX = TIME:OY = YY
  50. 560  GOTO 430
  51. 570  REM  START AGAIN?
  52. 580  HOME 
  53. 590  POKE KS,0
  54. 600  VTAB 22: PRINT "PRESS THE SPACE BAR TO PLOT AGAIN."
  55. 610  PRINT "TYPE 'C' TO CLEAR AND RUN AGAIN.";
  56. 620  IF  PEEK(KB) <128  THEN 620
  57. 630  GET G$
  58. 640  IF G$ = " "  THEN  RUN 200
  59. 650  IF G$ = "C"  THEN  RUN 
  60. 660  IF G$ = ESC$  THEN  HOME : TEXT : HOME : END 
  61. 670  GOTO 620
  62. 680  REM  INTERRUPT PLOT
  63. 690  GET G$
  64. 700  IF G$ = ESC$  THEN  GOTO 660
  65. 710  HOME : VTAB 22
  66. 720  PRINT "PRESS THE SPACE BAR TO CONTINUE."
  67. 730  IF G$ < >" "  THEN  RETURN 
  68. 740  IF  PEEK(KB) <128  THEN 740
  69. 750  GET G$
  70. 760  IF G$ < >" "  THEN 740
  71. 770  VTAB 21: PRINT TXT$;
  72. 780  RETURN